﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using STS.Schema.Enums;

namespace STS.Schema.Interfaces
{
    public interface IColumn : ISqlObject
    {
        string Collation { get; } //collation_name
        bool Computed { get; } //is_computed
        string ComputedText { get; }    //computed_text
        string TypeName { get; }//user_type_name
        int? Length { get; }//max_length
        byte? Precision { get; }//precision
        byte? Scale { get; }//scale
        string Default { get; } //default_value
        int ID { get; } //column_id
        bool Identity { get; } //is_identity
        string IdentityIncrement { get; } //identity_increment
        string IdentitySeed { get; } //identity_seed
        bool InPrimaryKey { get; } //is_identity
        bool IsForeignKey { get; } //is_foreign_key
        bool IsFullTextIndexed { get; } //is_full_text_indexed
        bool IsPersisted { get; } //is_persisted
        bool NotForReplication { get; } //is_identity_not_for_replication
        bool Nullable { get; } //is_nullable
        bool RowGuidCol { get; } //is_rowguidcol
        string Rule { get; } //rule_name
        string RuleSchema { get; } //rule_schema
        bool ReadOnly { get; } //is_readonly (true if parent is IView or column is computed, false otherwise)
    }
}
